package dp;

/**
 * Say you have an array for which the ith element is the price of a given stock on day i.
 * Design an algorithm to find the maximum profit. 
 * You may complete as many transactions as you like 
 * (ie, buy one and sell one share of the stock multiple times). 
 * However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
 *
 */
public class BestTimeToBuyAndSellStockII {

	// can be reviewed as finding all ascending sequences, and sum up the differences in each sequence
	// note the difference is just a sum of adjacent elements
	public static int maxProfit(int[] prices) {
		int profit = 0;
		for (int i = 1; i < prices.length; i++)
			if (prices[i] - prices[i - 1] > 0)
				profit += prices[i] - prices[i - 1];
		return profit;
    }

	public static void main(String[] args) {
		int[] prices = { 5, 1, 2, 4, 1, 3, 1};
		System.out.println(maxProfit(prices));
	}

}
